package com.itheima.a01polymorphismDemo1;

public class Test {
    public static void main(String[] args) {
        Animal a = new Dog();
        /*
        * 成员变量：编译看左边，运行也看左边
        * 编译看左边：javac编译时，看父类有没有这个变量，如果没有则编译失败
        * 运行也看左边：java运行代码时，实际获取的就是父类中的成员变量的值
        * */
        System.out.println(a.name); // Animal
        /*
        * 成员方法：编译看左边，运行看右边
        * 编译看左边：javac编译时，看父类有没有这个方法，如果没有则编译失败
        * 运行看右边：java运行代码时，实际运行的就是子类中的方法
        * */
        a.show(); // Dog -- show method
    }
}

class Animal{
    String name = "Animal";

    public void show(){
        System.out.println("Animal -- show method");
    }
}

class Dog extends Animal{
    String name = "Dog";

    @Override
    public void show() {
        System.out.println("Dog -- show method");
    }
}